#include <stdio.h>

#include "Funciones.h"
#include "Fitxers.h"

void emplena_caselles_fitxer(char sAdreca_fitxer [], caselles stC []) {

	FILE *pfitxer;
	char cTipus;
	int nCasella;
    int nEspera;

	pfitxer = fopen(sAdreca_fitxer, "r");

	if (!pfitxer) {

		printf("Error al obrir el fitxer: %s\n", sAdreca_fitxer);
		
	}
	else{

	   while (!feof(pfitxer)) {

	       	fscanf(pfitxer, "%c %i %i\n", &cTipus, &nCasella, &nEspera);
		    stC[nCasella].tipus = cTipus;

	       	if (cTipus == 'B') {
		      	stC[nCasella].espera = nEspera;
		      }
        }
        fclose(pfitxer);
	}
	
}

void moviment_fitxer (daus stT[], int nTorn){
    FILE *pfitxer;
    int i;
    pfitxer = fopen("moviments.txt","w");

    if(pfitxer == NULL){
		printf("Error al obrir el fitxer\n");
	}
	else{
            for (i = 0 ; i < nTorn ; i++){
               fprintf(pfitxer, "%d %d\n", stT[i][0], stT[i][1]);
            }
        fclose(pfitxer);
    }
}

int llegeix_ranquing (Jugador stR []) {
	
	FILE *pfitxer;
	char cTipus;
    int nCont_ranq = 0;
    int j;

	pfitxer = fopen("ranquing.dat", "r+");

	if (!pfitxer) {
		printf("Error al obrir el fitxer\n");
	}
	else{
       fread(stR[0].nom, sizeof(word), 1 , pfitxer);
	   while (!feof(pfitxer)) {
	
	        fread(&cTipus, sizeof(char), 1, pfitxer);
	        fread(&stR[nCont_ranq].total_tirades, sizeof(int), 1, pfitxer);
	        fread(&cTipus, sizeof(char), 1, pfitxer);
		    nCont_ranq++;
		    
		    fread(stR[nCont_ranq].nom, sizeof(word), 1, pfitxer);
       }
	    
//	    printf("Cont_ranq = %d\n", cont_ranq);
	    for (j = 0; j < nCont_ranq; j++) {
	//		printf("%s --- %d\n", R[j].nom, R[j].total_tirades);
		}
       
        fclose(pfitxer);
	}
	
	return nCont_ranq;
}

void escriu_ranquing(Jugador stR [], int nCont_ranq, Jugador stJ[], int nGuanyador){
    FILE *pfitxer;
	char cTipus;
	word tmp_nom;
    int j = 0;
    int i = 0;

	pfitxer = fopen("ranquing.dat", "w+");

	if (!pfitxer) {

		printf("Error al obrir el fitxer\n");

	}
	else{
	    
	    //Afegim guanyador al ranquing
		strcpy(stR[nCont_ranq].nom, stJ[nGuanyador].nom);
		stR[nCont_ranq].total_tirades = stJ[nGuanyador].total_tirades;
		nCont_ranq++;
		
		//Ordenem el ranquing
	    bombolla (stR, nCont_ranq);
	    
	//    printf("Cont_ranq = %d\n", cont_ranq);
	    for (j = 0; j < nCont_ranq ; j++) {
//			printf("%s --- %d\n", R[j].nom, R[j].total_tirades);
		}
       
       
       //Escriu els primers del ranquing
       if (nCont_ranq > 5) nCont_ranq = 5;
       for(i = 0 ; i < nCont_ranq ; i++){
            fwrite(stR[i].nom, sizeof(word), 1, pfitxer);
            fwrite("#", sizeof(char), 1, pfitxer);
            fwrite(&stR[i].total_tirades, sizeof(int), 1, pfitxer);
            fwrite("\n", sizeof(char), 1, pfitxer);
       }
       
        fclose(pfitxer);
	}
}
